Fall 2023 Reflections

Fall 2023 Reflections

Posted on 2023-12-14

Pre-test/Post-test findings

At the start of Fall 2023 I gave pre-test exams, and the same exam as a post-test. These exams weren't worth points but I encouraged students to take both so that both of us can see the progress they've made over the semester.

This data only reflects students who completed both the pre-test and the post-test assignments at the start and end of the semester, respectively. Students who completed one or the other but not both are not listed.

Course

Delivery method

Student #

Pretest score

Posttest score

Change

CS 134

Hybrid

1

66.67%

13.16%

-53.51%

CS 134

Hybrid

2

60.53%

52.63%

-7.90%

CS 134

Hybrid

3

73.68%

83.33%

9.65%

CS 134

Hybrid

4

68.42%

100.00%

31.58%

CS 134

Hybrid

5

80.70%

86.84%

6.14%

CS 134

Hybrid

6

55.26%

76.32%

21.06%

CS 200

HyFlex

7

57.32%

85.37%

28.05%

CS 200

HyFlex

8

74.39%

90.24%

15.85%

CS 200

HyFlex

9

74.39%

91.46%

17.07%

CS 200

HyFlex

10

67.07%

62.20%

-4.87%

CS 200

HyFlex

11

62.20%

95.12%

32.92%

CS 200

HyFlex

12

54.88%

81.71%

26.83%

CS 200

HyFlex

13

45.12%

92.68%

47.56%

CS 200

HyFlex

14

56.10%

97.56%

41.46%

CS 200

HyFlex

15

54.88%

68.29%

13.41%

CS 200

HyFlex

16

40.24%

90.24%

50.00%

CS 235

Online

17

65.00%

92.50%

27.50%

CS 235

Online

18

55.00%

85.00%

30.00%

CS 235

Online

19

70.00%

100.00%

30.00%

CS 235

Online

20

70.00%

82.50%

12.50%

CS 235

Online

21

67.50%

77.50%

10.00%

CS 235

Online

22

48.33%

97.50%

49.17%

CS 235

Online

23

63.33%

67.50%

4.17%

CS 235

Online

24

58.33%

65.00%

6.67%

CS 235

Online

25

53.33%

85.00%

31.67%

CS 235

Online

26

66.67%

100.00%

33.33%

CS 235

Online

27

77.50%

90.00%

12.50%

CS 235

Online

28

70.00%

92.50%

22.50%

CS 235

Online

29

75.83%

80.83%

5.00%

CS 235

Online

30

50.00%

87.50%

37.50%

CS 235

Online

31

52.50%

72.50%

20.00%

CS 235

Online

32

70.83%

89.17%

18.34%

CS 235

Online

33

65.83%

80.00%

14.17%

CS 235

Online

34

55.83%

83.33%

27.50%

CS 250

HyFlex

35

75.71%

100.00%

24.29%

CS 250

HyFlex

36

67.62%

77.14%

9.52%

CS 250

HyFlex

37

71.43%

92.86%

21.43%

CS 250

HyFlex

38

68.57%

96.19%

27.62%

CS 250

HyFlex

39

24.29%

91.43%

67.14%

CS 250

HyFlex

40

67.62%

91.43%

23.81%

CS 250

HyFlex

41

64.29%

84.29%

20.00%

CS 250

HyFlex

42

64.29%

97.14%

32.85%

CS 250

HyFlex

43

37.14%

94.29%

57.15%

CS 250

HyFlex

44

78.57%

92.86%

14.29%

CS 250

HyFlex

45

50.48%

54.29%

3.81%

CS 250

HyFlex

46

88.57%

100.00%

11.43%

CS 250

HyFlex

47

85.71%

90.48%

4.77%

CS 250

HyFlex

48

74.76%

96.19%

21.43%

CS 250

HyFlex

49

61.43%

100.00%

38.57%

CS 250

HyFlex

50

51.43%

87.14%

35.71%

CS 250

HyFlex

51

45.71%

91.43%

45.72%

      
      

Chart - Overall

Chart - CS 134

Chart - CS 200

Chart - CS 235

Chart - CS 250


Changes to my courses this semester

  • General
    • I returned to using emacs this semester, specifically utilizing orgmode in order to write documentation that can be exported to HTML and PDF (LaTeX) files. Throughout the semester I updated much of my written notes and assignment documentation into orgmode documents for easier maintenance. Previously, my course notes were written in LaTeX, which can be annoying to revise and recompile. See also: My Orgmode Docs
  • CS 134: Programming Fundamentals
    • I don't normally teach the 16-week version of CS 134, usually just the 8-week summer course, so I had to figure out scheduling for this format.
  • CS 200: Concepts of Programming with C++
    • Summer and Fall 2023 I had implemented group labs utilizing Replit. These group labs were meant for 2-3 people per group, and would contain similar but different assignments for the topic. Each student would work on their own version, and were permitted to work with their groupmates to solve problems. I think this worked better over the Summer semester and I think that this semester, while people were in groups online, I don't think they worked together on labs - just turning it in together.
  • CS 235: Object Oriented Programming with C++
    • This semester I created a "large" codebase for students to work in. Students across the two sections were split into 4 groups, each with a duplicate starter repository. This repository was based on Spotify after looking at its API. In particular, there were 9 unique areas: MUSIC: Tracks, Albums, Arists; PODCASTS: Shows, Episodes, Creators; AUDIOBOOKS: Books, Chapters, Authors. Each student had their own "area" they worked on throughout the semester.
      This was modeled after real software development, where students had access to their group's GitLab repository with the existing codebase. Each of the 3 projects had a set of Issues (or Tickets) created relating to the topic (e.g., Exception Handling, Static Members, Anonymous Functions). Students would choose a Ticket and be required to implement it on a new Branch. Then, students would post a Merge Request and review another student's Merge Request. On Canvas, their submission would be a link to their merge request, then as the instructor I would be the one to do a final approval and merge to the main branch.
  • CS 250: Basic Data Structures using C++
    • A lot of the course content this semester was the same as previous semesters. Topic presentation and assignments are getting a bit stale, so I intend to make revisions for Spring 2024.

Challenges this semester

  • Replit.com, which I used for my CS 134 and CS 200 courses, kept changing around the features. From what I noticed, the console was changed in how it functions, the auto-format only sporadically worked on code, and AI was default-enabled on all assignments mid-semester. Furthermore, November 15th they announced that they were stopping "Teams for Edu". Perhaps for the best, however, since the service is quite slow and makes it harder to automate "diff" tools to verify assignment work, as it takes a long time to manually download all the students' submissions for one assignment.
  • I caught COVID in October and after a week with a remote course in my Hybrid (face-to-face) CS 134, attendance for the rest of the semester seemingly had a sharp cut. I did record the course via Zoom throughout the semester, both before and after I had COVID.
  • There is a lot of discussion in our department about warding against academic dishonesty but at the same time I feel like there is not enough time to be appropriately dilligent in looking for plagiarism in assignments. I would like to have automated "diff" scripts but that requires a lot of work up-front to make sure assignments are turned in in a consistent format and structure.
  • My various video lectures are getting quite stale. Most of my CS 200 lectures are from 2016, when I started teaching as an adjunct. I make a few new videos here and there but not to the scope of covering all course content. Additionally, video files are hard to go back and revise, often requiring heavy video editing or a total re-record of the content. I simply do not have enough time to update my videos and record many new videos with the standard full time course schedule (or overload like I had this semester).
  • I had introduced "Notes" assignments a few semesters ago, which were basically a list of questions for students to answer and turn in. These assignments are difficult to manually grade and I would usually just mark it as "done" rather than reading through notes pages for every topic in every class for every student. My hope was to have students create their own reference that they can come back to throughout and even after the semester is over, but because it wasn't practical to grade, I feel like most notes were just copy/pastes from my own provided notes or otherwise copy/pasted from other locations. I am going to remove "notes" as an assignment in the future, and maybe just provide the list of questions with the answers as a review material.
  • I usually maintain a course webpage outside of the Canvas page itself because I find Canvas difficult to keep organized. However, maintaining a separate webpage means that there's the potential for them to become desynced, for links to get broken, and so on. I'm trying to think of a solution for the Spring semester. Using Canvas itself is so slow and doing everything manually with a web UI and using the mouse is really slow. I am looking at using the API more to help me automate generating my Canvas content to provide better consistency and control while I build out my courses.
  • It is difficult to continue with "business as usual" throughout October and November as tens of thousands of civilians were being killed overseas. I also did not see any official messaging on campus reaching out to our students, staff, and faculty.

Successes this semester

  • I successfully utilized the Canvas API this semester to create utilities to help me to my job. In particular, I created a "to do list" page that showed me a SORTABLE TABLE of all the assignments I needed to grade, including information like "Time since due date", "Total assignments waiting to be graded", and so on. Unfortunately, many of Canvas' baked-in tools are rather poor, and it is faster for me to just write my own utilities than wait for them to make proper improvements to the UI and UX. See also: My repo: Canvas Helper - API Scripts
  • For my CS 200 course I finally finished writing my automated test scripts FOR ALL ASSIGNMENTS, using Bash.
    However, these are now rendered useless as Replit is shutting down "Teams for Edu", so we will probably be moving back to using desktop software - the students won't be able to validate their work with the scripts if they're on a Windows machine. I could still use the scripts in grading but I am making changes to them to work with all platforms.
  • In CS 200 the past year or so we've been using Replit for C++ coding, and I've had my students learn to compile their code from the Shell using g++. This semester, some of my returning students were on Mac computers, and were able to continue building their code from the Terminal. This helps as I do not have a Mac computer to learn the ins and outs of XCode in order to help students configure their machines. I provide a "Visual Studio Project", "Code::Blocks Project", and a Makefile in my assignment starter code, so this has been working well.
  • In CS 235 I think that it was interesting for students to work on tickets for some of the assignments. I hope that they also saw the usefulness of learning the "workflow" of professional development, but in a class scenario so they can make mistakes without big consequences. Working on this codebase also made it more "entertaining" for me to grade the code while I was merging it together and adding additional features for the following projects.